class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param numbers int整型vector
     * @return int整型
     */
//     unordered_set<int> ust;
//     int duplicate(vector<int>& numbers) {
//         for(auto i : numbers) {
//             if(ust.find(i) != ust.end()) {
//                 return i;
//             }
//             ust.insert(i);
//         }
//         return -1;
//     }

//     int duplicate(vector<int>& numbers) {
//         vector<bool> num(10001, false);
//         for (auto i : numbers) {
//             if (num[i] == true) {
//                 return i;
//             }
//             num[i] = true;
//         }
//         return -1;
//     }
    int duplicate(vector<int>& numbers) {
        sort(numbers.begin(),numbers.end());
        int size = numbers.size();
        for(int i = 0; i < size; ++i) {
            if(i > 0 && numbers[i] == numbers[i-1])
                return numbers[i];
        }
        return -1;
    }
};